<html>
	<head>
		<title>javascript 动态修改css样式方法汇总(四种方法)</title>
		<link href="css1.css" rel="stylesheet" type="text/css" id="css"/>
	</head>
	<style type="text/css">
.style1{margin:10px auto ;background-color:#9999FF; display:block;color:White; border:1px solid white; padding:10px 25px; font-size:18px; } 
.style1:hover{ background-color:#66B3FF; cursor:pointer;} 
.style2{margin:10px auto ;background-color:gray; display:block;color:black; border:1px solid white; padding:10px 25px; font-size:18px; } 
.style2:hover{ background-color:black; color:White; cursor:pointer} 
	</style>
	<body>
<div> 
	<input id="btnB" type="button" name="btnLogin" value="登录" class="style1" /> 
	<div id="tool">
		<input type="button" value="【obj.style.className】更改样式" onclick="changeStyle1()"/>  
		<input type="button" value="【obj.style.cssText】更改样式" onclick="changeStyle2()" />  
		<input type="button" value="【obj.className】更改样式" onclick="changeStyle3()" />  
		<input type="button" value="更改外联css样式" onclick="changeStyle4()" /> 
	</div>
</div>	
	</body>
<script type="text/javascript">
	//该段代码修改btB的文字的颜色，在浏览器中打开调试工具，可以发现btB标签中多了一个属性【style="内联式>外联式。
	//而btB的hove伪类的background-color样式写在内联式中，所以嵌入式的background-color覆盖了伪类中，这就使得鼠标放入btB上感觉不到背景颜色的变化。
	function changeStyle1() {
		var obj = document.getElementById("btnB");  
		obj.style.backgroundColor= "blue";
	}
	
	//该段代码和上面的效果是一样的，缺陷也是一样。
	function changeStyle2() {
		var obj = document.getElementById("btnB");   
		obj.style.cssText = "background-color:black; display:block; color:White;";
	}
	
	//通过更改btB的css的类名的方式来更改样式，更改样式类名有两种方式。
	//1、obj.className = "style2";  
	//2、obj.setAttribute("class", "style2");都是一样的效果。
	//用这种方式来修改css比上面的效果要好很多。
	function changeStyle3() {
		var obj = document.getElementById("btnB");  
		//obj.className = "style2";  
		obj.setAttribute("class", "style2");
	}
	
	//使用更改外联的css文件，从而改变元素的css
	//这样也能方便的更改btB的样式，个人觉得这种方式是最好用的，是实现整体页面换肤的最佳方案。
	function changeStyle4() {
		var obj = document.getElementById("css");
		obj.setAttribute("href","js_css4.css");
	}
</script>
</html>